package com.woniuxy.project.mapper;

import com.woniuxy.commons.entity.Invest;
import com.woniuxy.project.entity.Project;
import com.woniuxy.project.vo.AddProjectVo;
import com.woniuxy.commons.vo.ProjectVo;
import com.woniuxy.project.vo.ReviewProjectVo;
import com.woniuxy.commons.vo.SearchProjectVo;
import com.woniuxy.project.vo.SearchReceivablesVo;
import org.apache.ibatis.annotations.Mapper;

import java.math.BigDecimal;
import java.util.List;

@Mapper
public interface ProjectMapper {
    List<ProjectVo> searchProject(SearchProjectVo searchProjectVo);

    Boolean addProject(AddProjectVo addProjectVo);

    boolean updateProject(AddProjectVo addProjectVo);

    AddProjectVo checkDetail(String pno);

    boolean passPreliminaryExamination(String pno);

    void startInviteTenders(String pno);

    void endInviteTenders(String pno);

    Project searchCmoney(String pno);

    void notMeetingStandards(String pno);

    List<ProjectVo> searchExamineProject(SearchProjectVo searchProjectVo);

    Boolean withdrawProject(ProjectVo project);

    List<SearchReceivablesVo> checkReceivables(String pno);

    List<ProjectVo> searchFullProject(SearchProjectVo searchProjectVo);

    boolean ReviewFailed(ProjectVo projectVo);

    boolean passReexamine(String pno);

    List<ReviewProjectVo> searchReviewProject(SearchProjectVo searchProjectVo);

    boolean bid(Invest invest);

    Integer getCountByStatus(String status);

    BigDecimal getTotalInvestMoney();

    Integer getConsumerCount();

    Integer getTodayConsumerCount();

    Integer getTodayAddProjectCount();

    List<BigDecimal> getDailyTotalRecharge();

    List<BigDecimal> getDailyTotalWithdraw();

    BigDecimal getMonthTotalRecharge();

    BigDecimal getMonthTotalWithdraw();

    BigDecimal getWeekTotalWithdraw();

    BigDecimal getWeekTotalRecharge();
}
